# 请设计一个装饰器，它可以作用于任何函数上，打印函数执行时间：
import time


# 装饰器，用来计算函数执行时间
def metric(fn):
    def test(*args, **kwargs):
        # 开始时间获取
        start_time = time.time()
        print('start_time=', start_time)
        # 函数执行
        fn(*args, **kwargs)
        # 结束时间获取
        end_time = time.time()
        print('end_time=', end_time)
        print('耗时：{:.4f}s'.format(end_time - start_time))
        return fn
    return test


# 设计一个求和函数
@metric
def sum_fn(x, y):
    total = 0
    while x > y:
        total = x + y
        y = y + 1


# 测试执行
sum_fn(100000, 0)

